package com.chixing.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration // 关键：添加配置类注解，确保Spring扫描到
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:5173")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
//    @Bean
//    public CorsFilter corsFilter() {
//        // 1. 配置跨域
//        CorsConfiguration config = new CorsConfiguration();
//        // 允许的前端源（必须精确匹配）
//        config.addAllowedOrigin("http://localhost:5173");
//        // 允许携带Cookie（前后端认证需要时必须开启）
//        config.setAllowCredentials(true);
//        // 允许所有请求方法（包含预检请求OPTIONS）
//        config.addAllowedMethod("*"); // 改为*更灵活，覆盖GET/POST/PUT等所有方法
//        // 允许所有请求头
//        config.addAllowedHeader("*");
//        // 预检请求有效期（秒），避免频繁预检
//        config.setMaxAge(3600L);
//
//        // 2. 配置路径映射（/**表示所有接口都生效）
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        source.registerCorsConfiguration("/**", config); // 覆盖所有接口
//
//        // 3. 返回过滤器
//        return new CorsFilter(source);
//    }
}